package controllers

import (
	"marx/models"

	"github.com/astaxie/beego"
)

type PurchaseController struct {
	beego.Controller
}

func (this *PurchaseController) Get() {
	this.TplName = "reservation.html"
}

// 需要的参数
// 所购买机票的航班的Id
// 用户的id
func (this *PurchaseController) Post() {
	// ！！！！！！！！！！！！！！！！！！！！！！！！！！
	//实际开发使用cookie，测试注释掉！！！！！！！！！！！！！！！！！！！！！！！！！！
	// ！！！！！！！！！！！！！！！！！！！！！！！！！！
	name, _, flag := checkAccount(this.Ctx)
	if !flag {
		this.Redirect("/login", 302)
		return
	}
	// name := this.Ctx.GetCookie("name")
	alineid := this.Input().Get("alineid")
	status := models.Purchase(name, alineid)
	// 返回状态值说明：
	// 0：购买成功
	// 1：购买失败，用户不存在
	// 2：购买失败，航班不存在
	// 3：购买失败，参数信息格式错误
	// 4：购买失败，航班取消
	// 5：购买失败，时间错误
	// 6：购买失败，航班冲突
	// 7：购买失败，系统故障
	// 8：购买失败，未知原因
	// 9：购买失败，余额不足
	// 10：购买错误，没有余票
	var codejson interface{}
	switch status {
	case 0:
		codejson = Message{0, nil, "购票成功"}
	case 1:
		codejson = Message{1, nil, "购买失败，用户不存在"}
	case 2:
		codejson = Message{1, nil, "购买失败，航班不存在"}
	case 3:
		codejson = Message{1, nil, "购买失败，参数信息格式错误"}
	case 4:
		codejson = Message{1, nil, "购买失败，航班取消"}
	case 5:
		codejson = Message{1, nil, "购买失败，时间错误"}
	case 6:
		codejson = Message{1, nil, "购买失败，航班冲突"}
	case 7:
		codejson = Message{1, nil, "购买失败，系统故障"}
	case 8:
		codejson = Message{1, nil, "购买失败，未知原因"}
	case 9:
		codejson = Message{1, nil, "购买失败，余额不足"}
	case 10:
		codejson = Message{1, nil, "购买错误，没有余票"}
	default:
		codejson = Message{1, nil, "购买错误，严重错误"}
	}
	this.Data["json"] = codejson
	this.ServeJSON()
	this.Redirect("", 302)
	return

}
